package mgt.pages

class ApiDefinitionShowPage extends geb.Page {
    static url = "/apiDefinition/show"

    static content = {
        propertyList(wait: true) { $(".property-list") }
        apiDefinitionNameValue { propertyList.find('aria-labelledby': 'name-label') }
        requestPropertyList(wait: true) { $(".property-list.request") }
        requestPathValue { requestPropertyList.find('aria-labelledby': 'path-label') }
        backendPropertyList(wait: true) { $(".property-list.backendService") }
        backendUriValue { backendPropertyList.find('aria-labelledby': 'uri-label') }
        backendTimeoutValue { backendPropertyList.find('aria-labelledby': 'timeout-label') }
        apiAuthsList { propertyList.find('aria-labelledby': 'apiAuths-label').find("li") }
    }

    String getApiDefinitionName() {
        return apiDefinitionNameValue.text()
    }

    String getApiDefinitionRequestPath() {
        return requestPathValue.text()
    }

    String getApiDefinitionBackendUri() {
        backendUriValue.text()
    }

    String getApiDefinitionBackendTimeout() {
        backendTimeoutValue.text()
    }

    Integer getApiAuthCount() {
        apiAuthsList.size()
    }
}